﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using System.Text.RegularExpressions;

namespace WebApplication1
{
    public partial class DangKiUser : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Request.QueryString["action"] == "erro")
                {
                    Lbthongbao.Text = "Tên dăng nhập '" + Request.QueryString["id"] + "' đã có,bạn vui lòng chọn tên khác!";
                }
                if (Session["user"]!= null)
                {
                    Response.Redirect("Default.aspx");
                }
            }
        }

 
        protected void Buttondangki_Click1(object sender, ImageClickEventArgs e)
        {
            if (TextBoxtendangnhap.Text.Trim() == "")
            {
                Lbthongbao.Text = "Bạn chưa nhập tên đăng nhập!";
            }
            else if (TextBoxtendangnhap.Text.Trim().Length<3)
            {
                Lbthongbao.Text = "Tên đăng nhập phải hơn 3 kí tự !";
            }
            else if (TextBoxmatkhau.Text.Trim() == "")
            {
                Lbthongbao.Text = "Bạn chưa nhập mật khẩu!";
            }
            else if (TextBoxmatkhau1.Text.Trim() == "")
            {
                Lbthongbao.Text = "Bạn chưa nhập lại mật khẩu!";
            }
            else if (TextBoxmatkhau1.Text.Trim().Length<6)
            {
                Lbthongbao.Text = "Mật khẩu tối thiểu phải có 6 kí tự!";
            }
            else if (TextBoxmatkhau.Text.Trim() != TextBoxmatkhau1.Text.Trim())
            {
                Lbthongbao.Text = "Mật khẩu nhập lại không đúng!";
            }
            else if (TextBoxhoten.Text.Trim() == "")
            {
                Lbthongbao.Text = "Bạn chưa nhập họ tên!";
            }
            else if (!KiemTraHoTen(TextBoxhoten.Text.Trim().ToString()))
            {
                Lbthongbao.Text = "Vui lòng nhập tên hợp lệ!";
            }
            else if (TextBoxemail.Text.Trim() == "")
            {
                Lbthongbao.Text = "Bạn chưa nhập email!";
            }
            else if (!IsEmail(TextBoxemail.Text.Trim()))
            {
                Lbthongbao.Text = "Địa chỉ email không hợp lệ!";
            }
            else if (TextBoxsodt.Value.Trim().ToString()== "")
            {
                Lbthongbao.Text = "Bạn chưa nhập số điện thoại!";
            }
            else if (TextBoxsodt.Value.Trim().Length<7)
            {
                Lbthongbao.Text = "Số điện thoại không hợp lệ!";
            }
            else
            {
                try
                {
                    string id;
                    BLLNguoiDung user = new BLLNguoiDung(TextBoxtendangnhap.Text, TextBoxmatkhau.Text, "", TextBoxhoten.Text, TextBoxemail.Text, TextBoxsodt.Value.Trim().ToString(),false, "");
                    id = user.Dangki();
                    //Session["user"] = id;
                    // Response.Redirect("Default.aspx?id=" + id + "");
                    Lbthongbao.Text = "Đăng kí thành công!";
                }
                catch(Exception ex)
                {
                    Lbthongbao.Text = "User này đã có, vui lòng chọn tên đăng nhập khác";
                    //Response.Redirect("DangKiUser.aspx?action=erro&id="+TextBoxtendangnhap.Text.Trim()+"");
                }
            }
        }

        //kiem tra email hop le
     public const string MatchEmailPattern = @"^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@"
    + @"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\."
    + @"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|"
    + @"([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})$";
        public static bool IsEmail(string email)
        {
            if (email != null) return Regex.IsMatch(email, MatchEmailPattern);
            else return false;
        }

        //kiem tra ho ten hop le
        public static bool KiemTraHoTen(string hoten)
        {
            // kiểm tra các khoảng trắng trước và sau họ tên
            if (hoten[0] == ' ' || hoten[hoten.Length - 1] == ' ')
                return false;
            //kiem tra do dai
            if (hoten.Length <5)
                return false;
            // Kiểm tra khoảng trắng giữa họ và tên, nếu có 2 khoảng trắng là false(giữa các từ không có hơn 1khoảng trắng)
            for (int i = 0; i < hoten.Length; i++)
            {
                if (hoten[i] == ' ')
                {
                    if (hoten[i + 1] == ' ')
                        return false;
                }
            }
            return true;
        }

    }

}
